package it.polimi.TravelDreamEAR.ejb.entities;

import java.io.Serializable;

import javax.persistence.*;

import java.util.Date;
import java.util.List;


/**
 * The persistent class for the istanza_pacchetto database table.
 * 
 */
@Entity
@Table(name="istanza_pacchetto")
@NamedQuery(name="IstanzaPacchetto.findAll", query="SELECT i FROM IstanzaPacchetto i")
public class IstanzaPacchetto implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	private String id;
	
	private String dataArrivo;

	private String dataPartenza;

	private String destinazione;

	private int prezzo;

	//bi-directional many-to-one association to Amico
	@OneToMany(mappedBy="istanzaPacchetto")
	private List<Amico> amicos;

	//bi-directional many-to-one association to Cliente
	@ManyToOne
	@JoinColumn(name="CLIENTE")
	private Cliente clienteBean;
	
	//bi-directional many-to-one association to Cliente
	@ManyToOne
	@JoinColumn(name="HOTEL")
	private Hotel hotel;

	//bi-directional many-to-one association to Amico
	@ManyToOne
	@JoinColumn(name="ACQUIRENTE")
	private Cliente acquirente;
	
	//bi-directional many-to-many association to Escursioni
	@ManyToMany
	@JoinTable(
		name="istanza_escursioni"
		, joinColumns={
			@JoinColumn(name="ISTANZA")
			}
		, inverseJoinColumns={
			@JoinColumn(name="ESCURSIONE")
			}
		)
	private List<Escursioni> escursionis;

	//bi-directional many-to-one association to Pacchetto
	@ManyToOne
	@JoinColumn(name="PACCHETTO")
	private Pacchetto pacchettoBean;

	public IstanzaPacchetto() {
	}

	public String getId() {
		return this.id;
	}

	public void setId(String string) {
		this.id = string;
	}

	public String getDataArrivo() {
		return this.dataArrivo;
	}

	public void setDataArrivo(String dataArrivo) {
		this.dataArrivo = dataArrivo;
	}

	public String getDataPartenza() {
		return this.dataPartenza;
	}

	public void setDataPartenza(String dataPartenza) {
		this.dataPartenza = dataPartenza;
	}

	public String getDestinazione() {
		return this.destinazione;
	}

	public void setDestinazione(String destinazione) {
		this.destinazione = destinazione;
	}

	public int getPrezzo() {
		return this.prezzo;
	}

	public void setPrezzo(int prezzo) {
		this.prezzo = prezzo;
	}

	public List<Amico> getAmicos() {
		return this.amicos;
	}

	public void setAmicos(List<Amico> amicos) {
		this.amicos = amicos;
	}

	public Amico addAmico(Amico amico) {
		getAmicos().add(amico);
		amico.setIstanzaPacchetto(this);

		return amico;
	}

	public Amico removeAmico(Amico amico) {
		getAmicos().remove(amico);
		amico.setIstanzaPacchetto(null);

		return amico;
	}

	public Cliente getClienteBean() {
		return this.clienteBean;
	}

	public void setClienteBean(Cliente clienteBean) {
		this.clienteBean = clienteBean;
	}

	public Hotel getHotel() {
		return hotel;
	}

	public void setHotel(Hotel hotel) {
		this.hotel = hotel;
	}

	public Cliente getAcquirente() {
		return acquirente;
	}

	public void setAcquirente(Cliente acquirente) {
		this.acquirente = acquirente;
	}

	public List<Escursioni> getEscursionis() {
		return this.escursionis;
	}

	public void setEscursionis(List<Escursioni> escursionis) {
		this.escursionis = escursionis;
	}

	public Pacchetto getPacchettoBean() {
		return this.pacchettoBean;
	}

	public void setPacchettoBean(Pacchetto pacchettoBean) {
		this.pacchettoBean = pacchettoBean;
	}

}